<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>GraphChi: example_apps/matrix_factorization/graphlab_gas/als_vertex_program.hpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">GraphChi
   &#160;<span id="projectnumber">0.1</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_04810b79264f9fec212054117672ab81.html">example_apps</a></li><li class="navelem"><a class="el" href="dir_2011854b2943d041f2052c56d329401e.html">matrix_factorization</a></li><li class="navelem"><a class="el" href="dir_99c2e3c9a7bbf28031c16c5dd63540ce.html">graphlab_gas</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">als_vertex_program.hpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>This file describes the vertex program for the alternating least squares (ALS) matrix factorization algorithm. See <a class="el" href="classals__vertex__program.html">als_vertex_program</a> for description of the ALS Algorithm.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;Eigen/Dense&gt;</code><br/>
</div>
<p><a href="als__vertex__program_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structvertex__data.html">vertex_data</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">the vertex data type which contains the latent factor.  <a href="structvertex__data.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structedge__data.html">edge_data</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The edge data stores the entry in the matrix.  <a href="structedge__data.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classgather__type.html">gather_type</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">The graph loader function is a line parser used for distributed graph construction.  <a href="classgather__type.html#details">More...</a><br/></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classals__vertex__program.html">als_vertex_program</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structerror__aggregator.html">error_aggregator</a></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structprediction__saver.html">prediction_saver</a></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:abff3f3130a5bb5fee0702765ecec0a47"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abff3f3130a5bb5fee0702765ecec0a47"></a>
typedef Eigen::VectorXd&#160;</td><td class="memItemRight" valign="bottom"><b>vec_type</b></td></tr>
<tr class="memitem:adf6fad225baca18a7d6f1173263ada20"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adf6fad225baca18a7d6f1173263ada20"></a>
typedef Eigen::MatrixXd&#160;</td><td class="memItemRight" valign="bottom"><b>mat_type</b></td></tr>
<tr class="memitem:ab9cfd2cad1698282b6c7fd7f7e7fd459"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab9cfd2cad1698282b6c7fd7f7e7fd459"></a>
typedef <br class="typebreak"/>
<a class="el" href="structgraphlab_1_1distributed__graph.html">graphlab::distributed_graph</a><br class="typebreak"/>
&lt; <a class="el" href="structvertex__data.html">vertex_data</a>, <a class="el" href="structedge__data.html">edge_data</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="als__vertex__program_8hpp.html#ab9cfd2cad1698282b6c7fd7f7e7fd459">graph_type</a></td></tr>
<tr class="memdesc:ab9cfd2cad1698282b6c7fd7f7e7fd459"><td class="mdescLeft">&#160;</td><td class="mdescRight">The graph type is defined in terms of the vertex and edge data. <br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a713562b4f44b2663241a3dd6292f0dab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a713562b4f44b2663241a3dd6292f0dab"></a>
<a class="el" href="structgraphlab_1_1_graph_lab_vertex_wrapper.html">graph_type::vertex_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="als__vertex__program_8hpp.html#a713562b4f44b2663241a3dd6292f0dab">get_other_vertex</a> (<a class="el" href="structgraphlab_1_1_graph_lab_edge_wrapper.html">graph_type::edge_type</a> &amp;<a class="el" href="structedge.html">edge</a>, const <a class="el" href="structgraphlab_1_1_graph_lab_vertex_wrapper.html">graph_type::vertex_type</a> &amp;vertex)</td></tr>
<tr class="memdesc:a713562b4f44b2663241a3dd6292f0dab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a vertex and an edge return the other vertex in the edge. <br/></td></tr>
<tr class="memitem:afb0b8a4655197699932baa2bac0cc465"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afb0b8a4655197699932baa2bac0cc465"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="als__vertex__program_8hpp.html#afb0b8a4655197699932baa2bac0cc465">extract_l2_error</a> (const <a class="el" href="structgraphlab_1_1_graph_lab_edge_wrapper.html">graph_type::edge_type</a> &amp;<a class="el" href="structedge.html">edge</a>)</td></tr>
<tr class="memdesc:afb0b8a4655197699932baa2bac0cc465"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given an edge compute the error associated with that edge. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>This file describes the vertex program for the alternating least squares (ALS) matrix factorization algorithm. See <a class="el" href="classals__vertex__program.html">als_vertex_program</a> for description of the ALS Algorithm. </p>
<p>Copyright (c) 2009 Carnegie Mellon University. All rights reserved.</p>
<p>Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at </p>
<pre class="fragment">http://www.apache.org/licenses/LICENSE-2.0
</pre> <pre class="fragment">Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an "AS
IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied.  See the License for the specific language
governing permissions and limitations under the License.
</pre><p>For more about this software visit: </p>
<pre class="fragment"> http://www.graphlab.ml.cmu.edu</pre> </div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jul 5 2012 00:11:18 for GraphChi by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.1
</small></address>
</body>
</html>
